package src.Aula08.Ex1;


public class Veiculo implements KmPercorridosInterface{
      
      private String matricula, modelo, marca;
      private int cilindrada;
      private int distanciaTotalPercorrida, ultimoTrajeto;
      
      public Veiculo(String matricula, String marca, String modelo, int cilindrada){
            this.matricula = matricula;
            this.marca = marca;
            this.modelo = modelo;
            this.cilindrada = cilindrada;
      }
      
      public String getMatricula() {return matricula;}
      public String getMarca() {return marca;}
      public String getModelo() {return modelo;}
      public int getCilindrada() {return cilindrada;}


      public void setMatricula(String matricula) {
            this.matricula = matricula;
      }

      public void setMarca(String marca) {
            this.marca = marca;
      }
      
      public void setModelo(String modelo) {
            this.modelo = modelo;
      }
      
      public void setCilindrada(int cilindrada) {
            this.cilindrada = cilindrada;
      }
      
      public int distanciaTotal() {
            return this.distanciaTotalPercorrida;
      }

      public void trajeto(int quilometros) {
            this.distanciaTotalPercorrida += quilometros;
            ultimoTrajeto = quilometros;
      }

      public int ultimoTrajeto() {
         return this.ultimoTrajeto;
      }

@Override
      public boolean equals(Object obj) {
            if (this == obj)
                  return true;
            if (obj == null)
                  return false;
            if (getClass() != obj.getClass())
                  return false;
            Veiculo other = (Veiculo) obj;
            if (cilindrada != other.cilindrada)
                  return false;
            if (matricula == null) {
                  if (other.matricula != null)
                        return false;
            } else if (!matricula.equals(other.matricula))
                  return false;
            if (modelo == null) {
                  if (other.modelo != null)
                        return false;
            } else if (!modelo.equals(other.modelo))
                  return false;
            return true;
      }

@Override
      public String toString(){
            return String.format("[Veiculo] - Matricula: %s; Marca: %s; Modelo: %s; Cilindrada: %d",matricula,marca,modelo,cilindrada);
      }

}